package model;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

import beans.TripLine;
import beans.TripPartBean;

/**
 * Ova klasa nije perzistentna
 * */
public class PutnLinija {
	//obavezno sortirane po redusledu OD-DO
	Vector<PutnaDuz> putneDuzi;
	int brojPresed;
	double ukupnaCena;
	Mesto mestoOd;
	Mesto mestoDo;
	Date polazak;
	Date dolazak;
	Date trajanje;
		
	public PutnLinija() {
	
	}

	public PutnLinija(Vector<PutnaDuz> putneDuzi) {
		super();
		this.putneDuzi = putneDuzi;
		brojPresed = putneDuzi.size()-1;
		mestoOd = putneDuzi.elementAt(0).getMestoOd();
		mestoDo = putneDuzi.elementAt(putneDuzi.size()-1).getMestoDo();
		polazak = putneDuzi.elementAt(0).getPolazak();
		dolazak = putneDuzi.elementAt(putneDuzi.size()-1).getDolazak();
		//trajanje = dolazak - polazak;		
	}
	
	public void update(){
		brojPresed = putneDuzi.size()-1;
		mestoOd = putneDuzi.elementAt(0).getMestoOd();
		mestoDo = putneDuzi.elementAt(putneDuzi.size()-1).getMestoDo();
		polazak = putneDuzi.elementAt(0).getPolazak();
		dolazak = putneDuzi.elementAt(putneDuzi.size()-1).getDolazak();
	}

	public Vector<PutnaDuz> getPutneDuzi() {
		return putneDuzi;
	}

	public void setPutneDuzi(Vector<PutnaDuz> putneDuzi) {
		this.putneDuzi = putneDuzi;
	}

	public int getBrojPresed() {
		return brojPresed;
	}

	public void setBrojPresed(int brojPresed) {
		this.brojPresed = brojPresed;
	}

	public double getUkupnaCena() {
		return ukupnaCena;
	}

	public void setUkupnaCena(double ukupnaCena) {
		this.ukupnaCena = ukupnaCena;
	}

	public Mesto getMestoOd() {
		return mestoOd;
	}

	public void setMestoOd(Mesto mestoOd) {
		this.mestoOd = mestoOd;
	}

	public Mesto getMestoDo() {
		return mestoDo;
	}

	public void setMestoDo(Mesto mestoDo) {
		this.mestoDo = mestoDo;
	}

	public Date getPolazak() {
		return polazak;
	}

	public void setPolazak(Date polazak) {
		this.polazak = polazak;
	}

	public Date getDolazak() {
		return dolazak;
	}

	public void setDolazak(Date dolazak) {
		this.dolazak = dolazak;
	}

	public Date getTrajanje() {
		return trajanje;
	}

	public void setTrajanje(Date trajanje) {
		this.trajanje = trajanje;
	}

	public TripLine toTripLine(){
		Vector<TripPartBean> rez = new Vector<TripPartBean>();
		for(PutnaDuz pd : putneDuzi){
			rez.add(pd.toTripPartBean());
		}
		
		return new TripLine(rez);		
	}
	
	@Override
	public String toString() {
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		String retVal = "brojPresed: " + brojPresed + ", ukupnaCena: " + ukupnaCena
						+ " , mestoOd: " + mestoOd + " , mestoDo" + mestoDo
						+ " , polazak: " + sdf.format(polazak) + " , dolazak: " + sdf.format(dolazak);
						//+ " , trajanje: " + trajanje;
		return retVal;
	}	
	
}